/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package homomorphism.list;

import java.util.ArrayList;
import java.util.Iterator;

/**
 *
 * @author liuyu
 * This is a efficient version of BasicListHomomorphismInterface
 * old , to be deleted
 */
public abstract class ThirdHomomorphismTheoremEx<T1 extends Object, T2 extends Object> {

    String folding_method = "fold";
    String unfolding_method = "unfold";

    public abstract T2 fold(Iterator<T1> values);

    public abstract ArrayList<T1> unfold(T2 value);

    public Object GetValue(T2 val) {
        return val;
    }
}
